#pragma once
#pragma pack(push,1)
typedef struct {
    unsigned char member_type_len;
    unsigned char member_name_len[1];
    unsigned char member_data_len[1];
    unsigned char member_data[1];
}member_info;
typedef struct {
    unsigned long long memeber_count;
    member_info memeber_info[1];
}packbuf;
#pragma pack(pop)
typedef struct{
    unsigned char* data;
    long long len;
}array;

packbuf* serialize(void* data)
{

}
void* deserialize(packbuf* buf)
{

}
void index_of(packbuf buf, int index)
{

}
void name_of(packbuf buf, char* name)
{

}